﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NUnit.Framework;
using Spring.Context;
using Spring.Context.Support;
using ProyectoGrupo5.Negocio;
using ProyectoGrupo5.ClasesDominio;

namespace ProyectoGrupo5.Pruebas
{
    [TestFixture]
    public class TestCandidatoService
    {
        private IApplicationContext contexto = null;

        [TestFixtureSetUp]
        public void InicializarSpring()
        {
            this.contexto = new XmlApplicationContext(
                "assembly://ProyectoGrupo5/ProyectoGrupo5/capaNegocio.xml",
                "assembly://ProyectoGrupo5/ProyectoGrupo5/capaPersistencia.xml");
        }

        [Test]
        public void TestRealizarCandidaturaCorrectamente()
        {
            CandidatoService candidaturaService = (CandidatoService)this.contexto.GetObject("bolsaTrabajo");
            Assert.NotNull(candidaturaService);
            Candidato candidaturaRealizada = null;
            //Assert.DoesNotThrow(delegate
            //{
            //   candidaturaRealizada = candidaturaService.RealizarPostulacion(1, 1, 2);
            //});
            //Assert.Fail("Se lanzo una excepcion");
            try
            {
               candidaturaRealizada = candidaturaService.RealizarPostulacion(1, 1, 2);
           }
            catch (Exception e)
            {
                Assert.Fail(string.Format("Excepción: {0}", e.Message));
           }
           Assert.NotNull(candidaturaRealizada);
           Assert.Greater(candidaturaRealizada.CodigoCandidato, 0);
        }
    }
}
